Flexible Feature Binding with AspectJ-based Idioms
نویسندگان
چکیده
In Software Product Lines (SPL), we can bind reusable features to compose a product at different times, which in general are static or dynamic. The former allows customizability without any overhead at runtime. On the other hand, the latter allows feature activation or deactivation while running the application with the cost of performance and memory consumption. To implement features, we might use aspect-oriented programming (AOP), in which aspects enable a clear separation between invariable code and variable code. In this context, recent work provides AspectJ-based idioms to implement flexible feature binding. However, we identified some design deficiencies. Thus, to solve the issues of these idioms, we incrementally create three AspectJ-based idioms. We apply these idioms to provide flexible binding for 16 features from five different product lines. Moreover, to evaluate our idioms, we quantitatively analyze them with respect to code cloning, scattering, tangling, and size by means of software metrics. Besides that, we qualitatively discuss our idioms in terms of code reusability, changeability, instrumentation overhead, behavior, and feature interaction. In conclusion, we show evidences that our idioms address the issues of those existing ones.
منابع مشابه
A Sequence of Patterns for Reusable Aspect Libraries with Easy Configuration
Using well-known AspectJ idioms has been shown to increase the reusability of aspect libraries. Availability of such reusable libraries is an important motivating factor to drive the further adoption of AspectJ in industry and aspect-oriented-programming in general. Existing work, however, mostly presents the existing AspectJ idioms as relatively independent solutions. As experience grows in us...
متن کاملAspectJ Idioms for Aspect-Oriented Software Construction
For concrete usage scenarios there are different options of how to use AspectJ's language features, and these options deeply impact the chances for further evolution of both base classes and aspects. Aspects can use aspect-oriented as well as object-oriented features. The combination of these mechanisms provides new powerful mechanisms. Idioms can help in guiding AspectJ users through this fron...
متن کاملIdioms for Building Software Frameworks in AspectJ
Building applications using AspectJ means to design applications build upon the new language features offered in addition to Java. The usual argumentation that AspectJ permits a better separation of concerns in contrast to the traditional static typed objectoriented code might be valid, but does not prevent developers to misuse these language features. What's needed is a discussions of how to a...
متن کاملImplementing Known Concepts in AspectJ
AspectJ is a so-called general-purpose aspect-language which tries to solve the problem of crosscutting code. An often uttered criticism of AspectJ is that there is no underlying concept in the implemented language features and that those features are rather arbitrary chosen instead of being based on any theoretical foundations. This paper shows beyond the the context of crosscutting and tangli...
متن کاملPatterns and an Antiidiom for Aspect Oriented Programming
There are many different options when using AOP tools or languages to solve similar problems. Modern AOP languages offer new features and design ideas, through the combination of object and aspect oriented features. Patterns are therefore required to guide AOP developers and architects around the common pitfalls and unleash the power of Aspect Oriented Programming. This paper describes three pa...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- J. UCS
دوره 20 شماره
صفحات -
تاریخ انتشار 2014